package com.sky.setmeal.service;

import com.sky.dto.SetmealDTO;
import com.sky.dto.SetmealPageQueryDTO;
import com.sky.result.PageResult;
import com.sky.vo.SetmealVO;

import java.util.List;
import java.util.Map;

/**
 * 套餐管理 service
 */
public interface SetMealService {

    /**
     * 套餐 新增套餐 以及 套餐菜品关联数据
     */
    void addSetMealAndSetMealDish(SetmealDTO setmealDTO);


    /**
     * 套餐 分页条件查询
     */
    PageResult selectPage(SetmealPageQueryDTO setmealPageQueryDTO);


    /**
     * 套餐 批量删除套餐 及 套餐菜品关联
     */
    void deleteSetmealAndSetmealDish(List<Long> ids);


    /**
     * 套餐 根据id查询套餐 及 套餐菜品关联
     */
    SetmealVO selectSetmealAndSetmealDish(Long id);


    /**
     * 套餐 修改套餐以及套餐菜品关联数据
     */
    void updateSetmealAndSetmealDish(SetmealDTO setmealDTO);


    /**
     * 套餐 启用、禁用
     */
    void updateStatusById(Long id, Integer status);


    /**
     * 套餐 控制台展示统计的 停售/起售 套餐数量
     */
    Integer countSetmealStatusByMap(Map map);
}
